package com.naiterui.ehp.bs.cms.modules.agent.service;

import java.io.IOException;
import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.cms.common.vo.PageParamsVO;
import com.naiterui.ehp.bs.cms.common.vo.PageVO;
import com.naiterui.ehp.bs.cms.modules.agent.po.AgentAuditPO;
import com.naiterui.ehp.bs.cms.modules.agent.po.AgentEditPO;
import com.naiterui.ehp.bs.cms.modules.agent.po.AgentPagePO;
import com.naiterui.ehp.bs.cms.modules.agent.vo.AgentAchievementListVO;
import com.naiterui.ehp.bs.cms.modules.agent.vo.AgentAchievementVO;
import com.naiterui.ehp.bs.cms.modules.agent.vo.AgentDetailVO;
import com.naiterui.ehp.bs.cms.modules.agent.vo.AgentPageItemVO;
import com.naiterui.ehp.bs.cms.modules.agent.vo.SearchItemVO;

/**
 * @author yiren
 * @since 2022/2/16
 */
public interface IAgentService {
	PageVO<AgentPageItemVO> queryAgentPage(PageParamsVO pageParamsVO, AgentPagePO pagePO);

	List<SearchItemVO> findData(String searchTxt);

	AgentDetailVO getDetail(Long id);

	void saveAgent(AgentEditPO editPO) throws BusinessException;

	void audit(AgentAuditPO auditPO) throws BusinessException;

    AgentAchievementVO achievement(Long agentId);

	void importData(MultipartFile file, String userName) throws BusinessException;

    PageVO<AgentAchievementListVO> achievementList(PageParamsVO pageParamsVO, Long agentId, Integer reportType,
        String reportDate);

    byte[] achievementExport(String agentIds, Integer reportType, String reportDates) throws IOException;
}
